package com.roin.learn.activiti.service;


import com.roin.learn.activiti.entity.Page;
import com.roin.learn.activiti.entity.User;
import com.roin.learn.activiti.exception.BusinessException;

public interface UserService {
    User getById(Integer id);

    Page<User> getPage(int pageNum, int pageSize, User user);

    Page<User> getDtoPage(int pageNum, int pageSize, User user);

    int update(User user);

    int add(User user) throws BusinessException;

    int deleteByUserIds(String[] userIds);

    User getByUserId(String userId);

    /**
     * 与Activiti用户同步
     * 同步原则：1，业务用户表里有Activiti用户表时没有的用户，添加到Activiti用户表
     * 2,业务用户表里没有Activiti用户表时有的用户，删除到Activiti用户表中业务用户表里没有的用户
     * 3,Activiti用户表里对应业务用户表里的用户，如果属性值不一致，以业务用户表里的用户为准更新
     * @throws BusinessException
     */
    void syncUser() throws BusinessException;
}
